<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>正则表达式</title>
    <script>
   /*
     正则表达式用于定义一些字符串的规则，
     计算机可以根据正则表达式来检查一个字符串是否符合规则(严格区分大小写)
     获取将字符串中符合规则的内容提取出来
    */
   /*创建正则表达式的对象
    语法：
      var 变量=new RegExp("正则表达式","匹配模式");
      在构造函数中可以传递一个匹配模式作为第二个参数
        可以是  i 忽略大小写             g全局匹配模式
    */
   var reg=new RegExp("a");
   var str="a";
   /*
   正则表达式的方法：
     test（）
        -使用这个方法可以用来检查一个字符串是否符合正则表达式的规则
        -符合返回true，不符合返回false
    */
   var result =reg.test(str);
   //console.log(result);
   console.log(reg.test("abc"));
   /*
           使用字面量创建正则表达式
        语法：var 变量=/正则表达式/匹配模式
        eg：reg=/a|b/i;
       使用|表示或的意思 []里的内容也是或的关系   [ab]==a|b
       [A-Z] 任意大写字母
       [a-z]任意小写字母
       [A-z]任意字母
       [^]除了    [^ab]表示除了ab以外
       \w  == [A-z0-9_]
       \W  ==  [^A-z0-9_]
       \d  ==  [0-9]
       \D  ==  [^0-9]
       \s  ==  空格
       \S  ==  除了空格
       \b  ==  单词边界
       \B  ==  除了单词边界
       创建一个正则表达式检查一个字符串中是否含有单词child
       reg=/\bchild\b/
       console.log(reg.test("hello child"));     * hello和child之间的空格就是\b
    */
   /*
              正则表达式的方法
      split()
       -可以将一个字符拆分为一个数组
       -方法中可以传递一个正则表达式作为参数，这样方法将会根据正则表达式去拆分字符串
       这个方法即使不指定全局也会全部拆分
        eg： var result = str.split（/[A-z]/）;
      search()
        可以搜索字符串中是否含有指定内容
        可以搜索字符串中是否含有指定内容，如果搜索到，则返回第一次出现的索引，如果没有则返回-1
        可以接受一个正则表达式作为参数，然后根据正则表达式去搜索字符串
        eg:result=str.search(/a[bef]c/);  （搜索字符串中是否含有abc或aec或afc）
      match()
        -可以根据正则表达式，从一个字符串中将符合条件的内容提取出来
        默认情况下match只会找到第一个符合要求的内容，我们可以设置正则表达式为全局匹配模式
      replace（）
        -可以将字符串中指定内容替换为新的内容
          参数:  1.被替换的内容  可以接受一个正则表达式作为参数
                 2.新的内容
            默认只替换第一个
    */
   /*
                         正则表达式语法
    量词：可以设置一个内容出现的次数
      只对前面一个内容起作用
     -{n}  正好出现n次    {m,n} 出现m~n次    {m,} m次以上   + 表示至少一个，相当于{1,}
     - * 表示大于等于0 {0,}   ？ 0个或一个，相当于{0,1}
     ^表示开头 eg： /^a/           $表示结尾   eg: /a$/
     如果在正则表达式中同时使用^$，则要求字符串必须完全符合正则表达式
     . 表示任意字符             \.表示 . \\表示  \
     注意：使用构造函数时，由于它的参数是一个字符串，而\是字符串的转义字符
     如果要使用\则需要\\来代替
    */
    </script>
</head>
<body>

</body>
</html>